home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 1.toast / Sample Code / Games / GlyphaIV / G4Externs.h < prev    next >
Encoding:
Text File  |  2000-09-28  |  7.4 KB  |  292 lines  |  [TEXT/MPS ]

  1.  
  2. //============================================================================
  3. //----------------------------------------------------------------------------
  4. //                                    Externs.h
  5. //----------------------------------------------------------------------------
  6. //============================================================================
  7.  
  8. #include "DrawSprocket.h"
  9. #include <ConditionalMacros.h>
  10. #include <Dialogs.h>
  11. #include <Types.h>
  12. #include <Quickdraw.h>
  13.  
  14. #define TRUE 1
  15. #define FALSE 0
  16.  
  17. #define    kPutInFront            (WindowPtr)-1L
  18. #define    kNormalUpdates        TRUE
  19.  
  20. #define kHelpKeyASCII                0x05
  21. #define kPageUpKeyASCII                0x0B
  22. #define kPageDownKeyASCII            0x0C
  23. #define    kUpArrowKeyASCII            0x1E
  24. #define kDownArrowKeyASCII            0x1F
  25.  
  26.  
  27. #define kDownArrowKeyMap            122        // key map offset for down arrow
  28. #define kRightArrowKeyMap            123        // key map offset for right arrow
  29. #define kLeftArrowKeyMap            124        // key map offset for left arrow
  30.  
  31. #define kAKeyMap                    7
  32. #define    kEKeyMap                    9
  33. #define    kPKeyMap                    36
  34. #define    kQKeyMap                    11
  35. #define kSKeyMap                    6
  36. #define kColonMap                    0x2E
  37. #define kQuoteMap                    0x20
  38. #define    kCommandKeyMap                48
  39. #define    kEscKeyMap                    50
  40. #define kSpaceBarMap                54
  41.  
  42. #define kBirdSound                    1
  43. #define kBirdPriority                    80
  44. #define kBonusSound                    2
  45. #define kBonusPriority                    85
  46. #define kBoom1Sound                    3
  47. #define kBoom1Priority                    115
  48. #define kBoom2Sound                    4
  49. #define kBoom2Priority                    110
  50. #define kSplashSound                5
  51. #define kSplashPriority                    75
  52. #define kFlapSound                    6
  53. #define kFlapPriority                    70
  54. #define kGrateSound                    8
  55. #define kGratePriority                    40
  56. #define kLightningSound                9
  57. #define kLightningPriority                100
  58. #define kMusicSound                    10
  59. #define kMusicPriority                    120
  60. #define kScreechSound                12
  61. #define kScreechPriority                50
  62. #define kSpawnSound                    13
  63. #define kSpawnPriority                    90
  64. #define kWalkSound                    14
  65. #define kWalkPriority                    30
  66. #define kFlap2Sound                    15
  67. #define kFlap2Priority                    20
  68. #define kScrape2Sound                16
  69. #define kScrape2Priority                10
  70.  
  71. #define kLavaHeight                    456
  72. #define kRoofHeight                    2
  73. #define kGravity                    4
  74.  
  75. #define kIdle                        -1    // enemy & player mode
  76. #define kFlying                        0    // enemy & player mode
  77. #define kWalking                    1    // enemy & player mode
  78. #define kSinking                    2    // player mode
  79. #define kSpawning                    3    // enemy mode
  80. #define kFalling                    4    // enemy mode & player mode
  81. #define kEggTimer                    5    // enemy mode
  82. #define kDeadAndGone                6    // enemy mode
  83. #define kBones                        7    // player mode
  84. #define kLurking                    10    // hand mode
  85. #define kOutGrabeth                    11    // hand mode
  86. #define kClutching                    12    // hand mode
  87. #define kWaiting                    15    // eye mode
  88. #define kStalking                    16    // eye mode
  89.  
  90. #define kInitNumLives                5
  91. #define kMaxEnemies                    8
  92. #define kDontFlapVel                8
  93.  
  94. #define kOwl                        0
  95. #define kWolf                        1
  96. #define kJackal                        2
  97.  
  98. #define kMaxPixelShatter        4000
  99. #define kMaxScoreFloater           8
  100. //--------------------------------------------------------------  Structs
  101.  
  102.  
  103. typedef struct
  104. {
  105.     Rect        dest, wasDest, wrap;
  106.     short        h, v;
  107.     short        wasH, wasV;
  108.     short        hVel, vVel;
  109.     short        srcNum, mode;
  110.     short        frame;
  111.     Boolean        facingRight, flapping;
  112.     Boolean        walking, wrapping;
  113.     Boolean        clutched;
  114.     short        electrical;        // should we be hitting him with lightning ? 
  115. } playerType;
  116.  
  117. typedef struct
  118. {
  119.     Rect        dest, wasDest;
  120.     short        h, v;
  121.     short        wasH, wasV;
  122.     short        hVel, vVel;
  123.     short        srcNum, mode;
  124.     short        kind, frame;
  125.     short        heightSmell, targetAlt;
  126.     short        flapImpulse, pass;
  127.     short        maxHVel, maxVVel;
  128.     Boolean        facingRight;
  129. } enemyType;
  130.  
  131. typedef struct
  132. {
  133.     Rect        dest;
  134.     short        mode;
  135. } handInfo;
  136.  
  137. typedef struct
  138. {
  139.     Rect        dest;
  140.     short        mode, opening;
  141.     short        srcNum, frame;
  142.     Boolean        killed, entering;
  143. } eyeInfo;
  144.  
  145. typedef struct
  146. {
  147.     short        prefVersion, filler;
  148.     Str255        highName;
  149.     Str15        highNames[10];
  150.     long        highScores[10];
  151.     short        highLevel[10];
  152.     long        wasVolume;
  153. } prefsInfo;
  154.  
  155. typedef struct
  156. {
  157.     unsigned long score;
  158.     Point location;
  159.     short duration;
  160. } scoreFloaterType;
  161.  
  162. #define kShatterNormal                 0
  163. #define kShatterPlayerDeath            1
  164. #define kShatterEnemyDeath            2
  165. #define kShatterPlatformHit            3
  166. #define kShatterPlatformLightning    4
  167. #define kShatterPlatformScrape        5
  168. #define kShatterLavaBubble            6
  169. #define kShatterLavaSplash            7
  170. #define kShatterLavaBurst            8
  171. #define kShatterPlayerEnemyScrape    9
  172. #define kShatterObeliskTip            10
  173. #define kShatterLightningDust        11
  174.  
  175. typedef struct
  176. {
  177.     short h,v;
  178.     short hVel, vVel;
  179.     short type;
  180.     short duration;
  181.     unsigned char color;
  182. } pixelShatter;
  183.  
  184. //--------------------------------------------------------------  Prototypes
  185.  
  186.  
  187. void GenerateEnemies (void);            // Enemies.c
  188. void MoveEnemies (void);
  189. void InitHandLocation (void);
  190. void HandleHand (void);
  191. void InitEye (void);
  192. void KillOffEye (void);
  193. void HandleEye (void);
  194. void CheckPlayerEnemyCollision (void);
  195. void HandlePixelShatter(void);
  196. void StartPixelShatter(short h, short v, short hVel, short vVel, short type);
  197. void StartPixelShatterRect(Rect *r, short dH, short dV, short type);
  198.  
  199. void DrawPlatforms (short);                // Graphics.c
  200. void DrawBanner(void);
  201. void DrawPlayer(void);
  202. void ScrollHelp (short);
  203. void OpenHelp (void);
  204. void CloseWall (void);
  205. void OpenHighScores (void);
  206. void UpdateLivesNumbers (void);
  207. void UpdateScoreNumbers (void);
  208. void UpdateLevelNumbers (void);
  209. void GenerateLightning (short h, short v);
  210. void FlashObelisks (Boolean);
  211. void DrawObelisks (void);
  212. void StrikeLightningWork (void);
  213. void DumpBackToWorkMap (void);
  214. void DrawTorches (void);
  215. void DrawPixelShatter (void);
  216. void DrawFrame (void);
  217. void GameQuitGraphics(void);
  218.  
  219. void MenusReflectMode (void);            // Interface.c
  220. void DoMenuChoice (long);
  221. void HandleEvent (void);
  222.  
  223. void InitNewGame (void);                // Play.c
  224. void PlayGame (void);
  225.  
  226. Boolean SavePrefs (prefsInfo *, short);    // Prefs.c
  227. Boolean LoadPrefs (prefsInfo *, short);
  228.  
  229.  
  230. void ToolBoxInit (void);                // SetUpTakeDown.c
  231. void CheckEnvirons (void);
  232. void OpenMainWindow (void);
  233. void InitMenubar (void);
  234. void InitVariables (void);
  235. void ShutItDown (void);
  236.  
  237. void PlayExternalSound (short, short);    // Sound.c
  238. void InitSound (void);
  239. void KillSound (void);
  240.  
  241. short RandomInt (short);                // Utilities.c
  242. void RedAlert (StringPtr);
  243. void FindOurDevice (void);
  244. void LoadGraphic (short);
  245. void CreateOffScreenPixMap (Rect *, CGrafPtr *);
  246. void CreateOffScreenBitMap (Rect *, GrafPtr *);
  247. void ZeroRectCorner (Rect *);
  248. void FlashShort (short);
  249. void LogNextTick (long);
  250. void WaitForNextTick (void);
  251. Boolean TrapExists (short);
  252. Boolean DoWeHaveGestalt (void);
  253. void CenterAlert (short);
  254. short RectWide (Rect *);
  255. short RectTall (Rect *);
  256. void CenterRectInRect (Rect *, Rect *);
  257. void PasStringCopy (StringPtr, StringPtr);
  258. void CenterDialog (short);
  259. void DrawDefaultButton (DialogPtr);
  260. void PasStringCopyNum (StringPtr, StringPtr, short);
  261. void GetDialogString (DialogPtr, short, StringPtr);
  262. void SetDialogString (DialogPtr, short, StringPtr);
  263. void SetDialogNumToStr (DialogPtr, short, long );
  264. void GetDialogNumFromStr (DialogPtr, short, long *);
  265. void DisableControl (DialogPtr, short);
  266. void GameIdleAnimation(void);
  267.  
  268. // pixel shatter control variables
  269. extern short numPixelShatter;
  270. extern pixelShatter thePixelShatter[kMaxPixelShatter];
  271.  
  272. // score floater control variables
  273. void HandleScoreFloaters(void);
  274. void StartScoreFloater(unsigned long score, Point where);
  275. extern short numScoreFloater;
  276. extern scoreFloaterType theScoreFloater[kMaxScoreFloater];
  277.  
  278. // lightning control variables
  279. extern short lightH, lightV, lightningCount;
  280.  
  281. #ifdef __powerc
  282.     extern DSpContextReference gTheContext;
  283. #endif
  284.  
  285. #ifdef powerc
  286.     extern pascal void SetSoundVol(short level);        // for old Sound Manager
  287.     extern pascal void GetSoundVol(short *level)
  288.     THREEWORDINLINE(0x4218, 0x10B8, 0x0260);
  289. #endif
  290.  
  291.  
  292.